function input(){
	var Listeners 			= {};
	var ResourceController 	= null;
	var Timer				= null;
	
	this.init = function(){
		var self = this;
		var progressIsClicked = false;
		var gainIsClicked = false;
		ResourceController = new resourceController();

		$(".buttonPlay").click(function(e){
			self.notify("buttonPlay", null);
		});
		$(".buttonPause").click(function(e){
			self.notify("buttonPause", e);
		});
		$(".buttonStop").click(function(e){
			self.notify("buttonStop", e);
		});
		$(".buttonNext").click(function(e){
			self.notify("buttonNext", e);
		});
		$(".buttonPrevious").click(function(e){
			self.notify("buttonPrevious", e);
		});
		$("#playlist").delegate("li", "click", function(e){
		    if (Timer == null) {
		        Timer = setTimeout(function() {
		            Timer = null;
					self.notify("onClickPlaylistItem", e);
		        }, 200);
		    }else{
		        clearTimeout(Timer);
		        Timer = null;
				self.notify("onDblClickPlaylistItem", e);
		    }
		});
		
		//gain contoll
		$("#transport .gain", CORE.Element).bind({
			mousedown: function(e){
				e.preventDefault();
				self.notify("onGainChanged", e );
				gainIsClicked = true;
			},
			mouseup: function(e){
				e.preventDefault();
				gainIsClicked = false;
			},
			//mousemover überall abfangen und in transporter aufpassen das der pos wer nich negativ wird
			mousemove: function(e){
				if(gainIsClicked){
					e.preventDefault();
					self.notify("onGainChanged", e );
				}
			}
		});
		
		//progress controll
		$("#transport .progress", CORE.Element).bind({
			mousedown: function(e){
				progressIsClicked = true;
			},
			mouseup: function(e){
				progressIsClicked = false;
			},
			mousemove: function(e){
				if(progressIsClicked){
					self.notify("onProgressChanged", e);
				}
			}
		});
		$(document).mouseup(function(){
			gainIsClicked = false;
			progressIsClicked = false;
		});
	};
	
	this.attach = function(eventName, listener){
		try{
			Listeners[eventName] = listener;
		}catch(e){
			console.log(e);
		};
	};
	
	this.detach = function(){
		
	};
	
	this.notify = function(eventName, e){
		Listeners[eventName](e);
	};
	
	this.init();
}